KFE 第39期

一周推荐

前后端分离后的前端时代

在前后端分离的时代,前端不再仅仅切图和编写静态模板,会有更多的承接页面更多的交互了。

前后端分离

JavaScript核心概念归纳整理

查缺补漏,看看自己还有哪些概念不会

Javascript

VueJS 开发常见问题集锦

遇到Vue的问题尝试来这里找解决方法

Vue

2017 Amsterdam CSS Day

赶快补充每个讲座的知识

CSS

只有20行Javascript代码!手把手教你写一个页面模板引擎

简单易懂,自己也可以写一个简单的模板引擎

模板引擎

一周技能加油站

学习模板引擎的时候,对代码中用的正则有点不是很熟悉了,于是对几个关键的正则稍微复习了一下

1
2
3
4
5
/<%([^%>]+)?%>/g
() 与模式 匹配并保存匹配项。
[] 字符集 与任何一个指定字符匹配
^ 匹配搜索字符串开始的位置。如果将 ^ 用作括号表达式中的第一个字符,则会对字符集求反。
? 零次或一次匹配前面的字符或子表达式。

https://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.100).aspx

一周挑战(每周提供一道面试题)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
实现extend函数?
有很多的插件库都有实现类似的方法
var isArray = function(obj) {
return (/Array/).test(Object.prototype.toString.call(obj));
}
var extend = function(to, from, overwrite){
var prop, hasProp;
for (prop in from) {
hasProp = to[prop] !== undefined;
if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {
if (isArray(from[prop])) {
if (overwrite) {
to[prop] = from[prop].slice(0);
}
} else {
to[prop] = extend({}, from[prop], overwrite);
}
} else if (overwrite || !hasProp) {
to[prop] = from[prop];
}
}
return to;
}

一周段子

哥们我上公交时前面一漂亮妹子发夹掉了,
我捡起上前叫住她:“美女你发夹掉了。”
妹子微微一笑,伸手来接。
从没跟妹子搭讪过的我不知哪来的勇气,
我竟然说:“能认识下吗?交个朋友。”
结果,妹子华丽丽地来了句:“算了,发夹我不要了。”

文章整理来自互联网,不作商业用途,如侵权,请联系删除